<?php

/** 
 * 买水订单状态模型(mongo)
 * @property Mongo_db $mongo
 */
class Order_queue_mdl extends Mongo_Model {
	public function __construct() {
		$this->collName = 'order_queue';
		parent::__construct ();
	}
	/**
	 * 添加一张订单进队列
	 * @param array $data 结构如下:
	 * 		<p>_id			:	订单ID
	 * 		<p>state		:	订单状态
	 * 		<p>maxTakeSecs	:	最大取水秒数
	 * 		<p>beginTime	:	订单开始时的APP端时间戳
	 * 		<p>appTime		:	每次通知的APP端时间戳
	 * 		<p>serverTime	:	每次通知的服务器端时间戳
	 * @return boolean
	 */
	public function add($data){
		$order = array();
		foreach($data as $k=>$v){
			switch ($k) {
				case '_id':
				case 'state':
				case 'maxTakeSecs':
					$order[$k] = (int)$v;
					break;
				case 'beginTime':
				case 'appTime':
				case 'serverTime':
					$order[$k] = (float)$v;
					break;
			}
		}
		if ( count($order) !=6 ) {
			return FALSE;
		}
		return $this->insert($order);
	}
	/**
	 * 更新订单状态为出水中
	 * @param int $orderID
	 * @param float $time
	 */
	public function flowing($orderID,$time){
		$where = array('_id'=>(int)$orderID,);
		$update = array(
				'$set'=>array(
						'state'=>BUY_ORDER_STATE_FLOWING,
						'appTime'=>(float)$time,
						'serverTime'=>time(),
				),
		);
		return $this->update($where,$update);
	}
}

